package com.woniuxy.mapper;

import com.woniuxy.entity.CustomerManagement;
import com.woniuxy.entity.dto.NormalOrderDTO;

import java.util.List;
import java.util.Map;

public interface OrderMapper {
    List<NormalOrderDTO> queryCustomerOrder(NormalOrderDTO normalOrderDTO);//查询客户订单
    List<NormalOrderDTO> queryUserOrder(NormalOrderDTO normalOrderDTO);//查询用户订单
    NormalOrderDTO queryBasicDetail(String id);//订单详情页面查询基本信息
    NormalOrderDTO querySendDetail(String id);//订单详情页面查询发货信息
    NormalOrderDTO queryDeliveryDetail(String id);//订单详情页面查询收货信息
    List<NormalOrderDTO> queryGoodsDetail(String id);//订单详情页面查询货物信息
    NormalOrderDTO queryCostDetail(String id);//订单详情页面查询费用信息
    List<CustomerManagement> queryCustomer();//开单页面查询信息  做客户名称下拉框用
    List<NormalOrderDTO> queryGoods();//开单页面添加货物弹窗 查询全部货物信息
    List<NormalOrderDTO> queryGoods2(String id);//开单页面添加货物弹窗 添加后 主页面查询
    void addGoods(List<NormalOrderDTO> normalOrderDTOS);
    List<NormalOrderDTO> queryOrderGoods(String id);//通过订单号查询order_goods表对应的货物信息
    void updateGoodsSmallCount(NormalOrderDTO normalOrderDTO);//开单页面重复添加商品修改商品数量
    void addDriverPickUp(NormalOrderDTO normalOrderDTO);//开单保存添加司机提货表
    void addDeliveryAddress(NormalOrderDTO normalOrderDTO);//开单保存添加客户地址管理表
    void addOrder(NormalOrderDTO normalOrderDTO);//创建订单
    void updateOrderWayId(NormalOrderDTO normalOrderDTO);//调度后 订单表生成运单ID
    void addWayid(NormalOrderDTO normalOrderDTO);//调度后 添加一条运单表数据
    void addBigOrder(List<NormalOrderDTO> normalOrderDTOS);//添加合单表
    List<NormalOrderDTO> queryGoodsByGroup(List<String> ids);//合单逻辑调用
    void batchDelGoods(List<String> ids);//合单逻辑调用
    void batchDelPickupAddress(List<String> ids);//合单逻辑调用
    void batchDelDeliveryAddress(List<String> ids);//合单逻辑调用
    void batchDelOrder(List<String> ids);//合单逻辑调用
    void updateOrderSource(List<String> ids,String snowId);//合单逻辑调用
    void updateEmployeeId(String id);//合单逻辑调用
    void updateOrderSourceAndEmployeeId(String id);////拆单逻辑调用
    void delOrder(String id);//拆单逻辑调用  删除合并订单
    void updateOrderStatus(String id);//取消订单
    void batchCancelOrder(List<String> ids);//批量取消订单


    List<Map<String, Object>> queryException2(Map<String, Object> params);

}
